package com.example.springboot.init;

import com.example.springboot.vo.Car;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 配置类，定义 Bean，交给 Spring 容器管理
 * <p> 在 Spring 容器里注册 BeanDefinition
 * <p>
 * <p> BeanDefinition 保存了 Bean 的所有配置信息，Spring 根据这些信息去创建和管理 Bean 对象 。
 * <p> 1. beanClassName： 要创建的类的 全限定名 ;
 * <p> 2. Bean 的作用域： singleton、prototype ;
 * <p> 3. Bean 的依赖信息： 构造函数参数、property 属性注入、dependsOn 指定依赖其他 Bean 的先后顺序 ;
 * <p> 4. 生命周期回调： 指定初始化方法（initMethodName）、销毁方法（destroyMethodName） ;
 * <p> 5. 其他元数据： 是否懒加载 (lazyInit)、是否是抽象 Bean 、是否自动注入 ;
 * <p> 总之： BeanDefinition = 建房子的 设计图纸 ; Bean = 根据设计图建出来的 房子
 * <p>
 * @author Zhang.Z
 * @version 2025-09-21
 */
@Configuration
public class InitConfig {

    @Bean
    public Car car() {
        return new Car();
    }
}
